'''
图形验证码
'''
import tesserocr
from PIL import Image


# image = Image.open('F.png')
# # 将图片转为文本
# result = tesserocr.image_to_text(image)
# print(result)
# # 将图片文件转换为字符串
# print(tesserocr.file_to_text('F.png'))

# 存在多余点干扰时的图片识别
# image = Image.open('captcha2.png')
# result = tesserocr.image_to_text(image)
# print(result)

# 图片处理
# 首先将验证码图片转化为数组，看一下维度
import numpy as np
image = Image.open('captcha2.png')
# print(np.array(image).shape)
# print(image.mode)
# 将图片转化为灰度图
# image = image.convert('L')
# image.show()
# 往convert方法传入1，把图片二值化处理
# image = image.convert('1')
# image.show()
'''把图片转化为灰度图像，然后根据阈值删除图片中的干扰点'''
image = image.convert('L') # 转为灰度图
threshold = 50 # 设置灰度的阈值为50
array = np.array(image) # 将图片转化为数组
print(array)
array = np.where(array > threshold, 255, 0) # 利用NumPy的where方法对数组进行筛选和处理，其中指定将灰度大于阈值的图片的像素设置为255，表示白色，否则设置为0，表示黑色
image = Image.fromarray(array.astype('uint8'))
image.show()